home *** CD-ROM | disk | FTP | other *** search
/ ASP Advantage 1993 / The Association of Shareware Professionals Advantage CD-ROM 1993.iso / files / progming / pwl521q / windemo2.bas < prev    next >
BASIC Source File  |  1992-11-15  |  3KB  |  114 lines

  1. '    WINDEMO2.BAS - ProWindows(tm) LITE Demo Program
  2.  
  3. REM $DYNAMIC        ' <= SET UP QUICKBASIC FOR DYNAMIC MEMORY USAGE
  4. DEFINT A-Z          ' <= DEFAULT TO INTEGERS
  5.  
  6. REM $INCLUDE: 'LITE.BI'       ' <= REQUIRED FOR WINDOW CALLS
  7.  
  8. ' === DEFINE A FEW CONSTANTS
  9.  
  10. CONST WINMEMSIZE% = 8191      ' <= VIRTUAL WINDOW MEMORY SIZE
  11. CONST SCRNMEMSIZE% = 4096     ' <= SCREEN BUFFER MEMORY SIZE
  12. CONST MAXWINDOWS% = 30        ' <= MAXIMUM NUMBER OF WINDOWS
  13.     
  14.     CLEAR , , 4096           ' <= SET ASIDE ADDITIONAL "STACK" SPACE
  15.  
  16.     LOCATE 1, 1
  17.  
  18.     PreInit                  ' <= PRE-INITIALIZE THE WINDOW MANAGER
  19.  
  20. ' === DIMENSION GLOBAL ARRAYS WITH ABOVE DEFINED CONSTANTS
  21.                                          
  22.     REDIM SHARED VirMem(WINMEMSIZE) AS INTEGER    ' <= VIRTUAL MEMORY
  23.     REDIM SHARED scrn(SCRNMEMSIZE) AS INTEGER     ' <= SCREEN MEMORY
  24.     REDIM SHARED vcb(MAXWINDOWS) AS vircb         ' <= VIRTUAL WINDOW INFO
  25.     REDIM SHARED wcb(MAXWINDOWS) AS wincb         ' <= DISPLAYED WINDOW INFO
  26.     REDIM SHARED cursor(MAXWINDOWS) AS cursorTYPE ' <= CURSOR CONTROL ARRAY
  27.     REDIM SHARED wcbndx(MAXWINDOWS) AS INTEGER    ' <= LIST OF HANDLES
  28.     
  29.     InitPro                  ' <= INITIALIZE THE WINDOW MANAGER
  30.  
  31.     ReCycleMode 1            ' <= ENABLE "VIDEO RECYCLING"
  32.     
  33.     SetEventDelay 18         ' <= SET MAXIMUM EVENT DELAY TIME
  34.  
  35.     UseDrivers 0, 0, 1       ' <= INSTALL ANY NEEDED DRIVERS
  36.  
  37. REM  setBWmode 1              ' <= SWITCH TO MONOCHROME MODE
  38.  
  39. ' === DEFINE THE "GLOBAL WINDOW OPTIONS"
  40.  
  41.     GlobalOptions = SELECTABLE
  42.     
  43.     FillScreen 1, 1, MAXROWS, MAXCOLS, 23, 250, SNOW
  44.  
  45.     Notice                   ' <= COPYRIGHT NOTICE (SHAREWARE VERSION ONLY)
  46.     Win1 = CurrentWindow     ' <= GET THE WINDOW'S HANDLE
  47.  
  48.     CloneWindow Win1         ' <= CLONE "WIN1"
  49.     Win2 = CurrentWindow     ' <= GET THE WINDOW'S HANDLE
  50.  
  51.     CloneWindow Win1         ' <= CLONE "WIN1"
  52.     Win3 = CurrentWindow     ' <= GET THE WINDOW'S HANDLE
  53.  
  54.     DisplayWindow Win2, 13, 37, 12, 24      ' <= DISPLAY WINDOW #2
  55.     DisplayWindow Win3, 8, 50, 12, 24       ' <= WINDOW #2
  56.  
  57.     row = 1: col = 1: WinSize = 3
  58.  
  59.     WHILE INKEY$ = ""
  60.  
  61.         SELECT CASE WinSize
  62.             CASE 3
  63.                 size = 3
  64.             CASE 12
  65.                 size = -3
  66.             CASE ELSE
  67.         END SELECT
  68.  
  69.         SELECT CASE row
  70.             CASE 1
  71.                 cdirection = 1
  72.             CASE 9
  73.                 rdirection = 0
  74.                 cdirection = -1
  75.             CASE ELSE
  76.         END SELECT
  77.  
  78.         col = col + cdirection
  79.  
  80.         SELECT CASE col
  81.             CASE 1
  82.                 rdirection = -1
  83.                 cdirection = 0
  84.             CASE 55
  85.                 cdirection = 0
  86.                 rdirection = 1
  87.             CASE ELSE
  88.         END SELECT
  89.  
  90.         row = row + rdirection
  91.  
  92.         IF (row = 1) AND (col = 1) THEN
  93.             rdirection = 0
  94.             cdirection = 0
  95.         END IF
  96.  
  97.         RefreshMode DISABLE           ' <= DISABLE WINDOW REFRESHING
  98.  
  99.         ReAlignWindow Win2, row, col  ' <= ADJUST WINDOW VIEWPORT
  100.         ReAlignWindow Win3, row, col
  101.  
  102.         RefreshMode ENABLE            ' <= RE-ENABLE WINDOW REFRESHING
  103.  
  104.         RefreshWindow Win2            ' <= UPDATE THE WINDOW(S)
  105.  
  106.     WEND
  107.  
  108.     CloseWindow Win2         ' <= CLOSE OUR WINDOWS
  109.     CloseWindow Win3
  110.  
  111.        
  112.     
  113.  
  114.